这两种三栏式布局都实现了中间内容优先渲染、两侧固定宽度、中间宽度自适应的特点

圣杯布局

<div class="container">
  <div class="main">#main (自适应)</div>
  <div class="left">#left (200px)</div>
  <div class="right">#right (200px)</div>
</div>
.container {
  padding: 0 200px; /* 左右内间距等于左右列宽度 */
}
.main {
  width: 100%;
  float: left;
}
.left {
  width: 200px;
  float: left;
  margin-left: -100%; /* 移动到 main 左侧 */
  position: relative;
  left: -200px; /* 再向左移动自身宽度 */
}
.right {
  width: 200px;
  float: left;
  margin-left: -200px; /* 移动到 main 右侧 */
  position: relative;
  right: -200px; /* 再向右移动自身宽度 */
}

双飞翼布局

<div class="container">
  <div class="main-wrapper">
    <div class="main">#main (自适应)</div>
  </div>
  <div class="left">#left (200px)</div>
  <div class="right">#right (200px)</div>
</div>
.main-wrapper {
  width: 100%;
  float: left;
}
.main {
  margin: 0 200px; /* 内容区域留出边距 */
}
.left {
  width: 200px;
  float: left;
  margin-left: -100%; /* 移动到最左侧 */
}
.right {
  width: 200px;
  float: left;
  margin-left: -200px; /* 移动到最右侧 */
}

核心区别: